package top.chmin.project.cloud.common.menu.auto;

// field import auto
// #bind.field.updateTime#

import top.chmin.project.cloud.common.entity.*;

/**
 * chmin
 * 2023-12-25 09:15:43
 * cloud-builder
 */
public class MenuFPC extends PreCondition {

    public MenuFPC() {
    }

    public MenuFPC(MenuFPC parent) {
        super(parent);
    }

    public MenuFPC forDelete() {
        type = "DELETE";
        return this;
    }

    public MenuFPC forCount() {
        type = "COUNT";
        return this;
    }

    public MenuFPC forDistinct() {
        type = "DISTINCT";
        return this;
    }

    public MenuFPC limit(int limit) {
        super.limit = limit;
        return this;
    }

    public MenuFPC sub() {
        return new MenuFPC(this);
    }

    public MenuFPC complete(boolean and) {
        finish(and);
        return parent == null ? this : (MenuFPC) parent;
    }

    public Condition toCondition() {
        return toCondition(Menu.class, "");
    }

    // field fpc auto
// #bind.field.id#
    public Id id() {
        return new Id();
    }

    // #bind.field.createBy#
    public CreateBy createBy() {
        return new CreateBy();
    }
// $bind.field.id$

    // #bind.field.updateBy#
    public UpdateBy updateBy() {
        return new UpdateBy();
    }

    // #bind.field.createTime#
    public CreateTime createTime() {
        return new CreateTime();
    }
// $bind.field.createBy$

    // #bind.field.updateTime#
    public UpdateTime updateTime() {
        return new UpdateTime();
    }

    // #bind.field.MenuKey#
    public MenuKey MenuKey() {
        return new MenuKey();
    }
// $bind.field.updateBy$

    // #bind.field.MenuPath#
    public MenuPath MenuPath() {
        return new MenuPath();
    }

    // #bind.field.MenuLabel#
    public MenuLabel MenuLabel() {
        return new MenuLabel();
    }
// $bind.field.createTime$

    // #bind.field.ParentMenu#
    public ParentMenu ParentMenu() {
        return new ParentMenu();
    }

    public class Id extends LongFPCField<MenuFPC> {
        private Id() {
            super(MenuFPC.this, "id");
        }
    }
// $bind.field.updateTime$

    public class CreateBy extends StringFPCField<MenuFPC> {
        private CreateBy() {
            super(MenuFPC.this, "create_by");
        }
    }

    public class UpdateBy extends StringFPCField<MenuFPC> {
        private UpdateBy() {
            super(MenuFPC.this, "update_by");
        }
    }
// $bind.field.MenuKey$

    public class CreateTime extends LocalDateTimeFPCField<MenuFPC> {
        private CreateTime() {
            super(MenuFPC.this, "create_time");
        }
    }

    public class UpdateTime extends LocalDateTimeFPCField<MenuFPC> {
        private UpdateTime() {
            super(MenuFPC.this, "update_time");
        }
    }
// $bind.field.MenuPath$

    public class MenuKey extends StringFPCField<MenuFPC> {
        private MenuKey() {
            super(MenuFPC.this, "menu_key");
        }
    }

    public class MenuPath extends StringFPCField<MenuFPC> {
        private MenuPath() {
            super(MenuFPC.this, "menu_path");
        }
    }
// $bind.field.MenuLabel$

    public class MenuLabel extends StringFPCField<MenuFPC> {
        private MenuLabel() {
            super(MenuFPC.this, "menu_label");
        }
    }

    public class ParentMenu extends LongFPCField<MenuFPC> {
        private ParentMenu() {
            super(MenuFPC.this, "parent_menu");
        }
    }
// $bind.field.ParentMenu$

}
